package gt.service.bound;

import gt.dao.bound.BoundDAO;
import gt.entity.bound.Bound;
import gt.service.base.BaseServiceImpl;
import gt.util.annotation.LogAnnotation;

import java.util.HashMap;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * 微信用户绑定门店表
 * @author yangsitong
 */
@Service("boundService")
public class BoundServiceImpl extends BaseServiceImpl implements BoundService {

	// Fields

	@Autowired
	private BoundDAO boundDAO;// 微信用户绑定门店表DAO接口

	// Methods

   /**
	* 添加微信用户绑定门店表
	* @param boundId 绑定Id
	* @param agentId 代办点Id
	* @param openId 微信Id
	* @param carrierId 快递公司Id
	* @param carrierName 快递公司名称
	* @param boundStatus 绑定状态1:已绑定2:已解绑
	* @param createTime 添加时间 
	* @param updateTime 更新时间
	* @return Long boundId 添加后的数据库主键值
	*/
	@Override
	public Long add(Bound bound) {
			// 调用微信用户绑定门店表DAO接口
		this.boundDAO.insert(bound);
		return bound.getBoundId();
	}

   /**
	* 删除微信用户绑定门店表
	* @param boundId 主键值
	*/
	@Override
	public void delete(Long boundId) {
		// 调用微信用户绑定门店表DAO接口
		this.boundDAO.delete(boundId);
	}

   /**
	* 更新微信用户绑定门店表
	* @param boundId 绑定Id
	* @param agentId 代办点Id
	* @param openId 微信Id
	* @param carrierId 快递公司Id
	* @param carrierName 快递公司名称
	* @param boundStatus 绑定状态1:已绑定2:已解绑
	* @param createTime 添加时间 
	* @param updateTime 更新时间
	*/
	@Override
	public void edit(Bound bound) {
		// 调用微信用户绑定门店表DAO接口
		this.boundDAO.update(bound);
	}

   /**
	* 主键查询微信用户绑定门店表
	* @param bound 参数实体
	* @return Bound 实体
	*/
	@Override
	public Bound queryById(Long boundId) {
		// 调用微信用户绑定门店表DAO接口
		return this.boundDAO.selectById(boundId);
	}

   /**
	* 根据条件查询微信用户绑定门店表列表
	* @param boundId 绑定Id
	* @param agentId 代办点Id
	* @param openId 微信Id
	* @param carrierId 快递公司Id
	* @param carrierName 快递公司名称
	* @param boundStatus 绑定状态1:已绑定2:已解绑
	* @param createTime 添加时间 
	* @param updateTime 更新时间
	* @return List<Bound> 实体List
	*/
	@Override
	public List<Bound> queryList(Bound bound) {
			// 调用微信用户绑定门店表DAO接口
		return this.boundDAO.selectList(bound);
	}

	@Override
	public List<Bound> queryByOpenId(String openId) {
		
		return this.boundDAO.selectByOpenId(openId);
	}

	@Override
	public Bound queryByOpenIdAndAgentId(String openId, Long receiveAgentId) {
		// TODO Auto-generated method stub
		return this.boundDAO.selectByOpenIdAndAgentId(openId,receiveAgentId);
	}

	@Override
	public List<Bound> queryListByCarrierName(String carrierName) {
		// TODO Auto-generated method stub
		return this.boundDAO.selectByCarrierName(carrierName);
	}
	  /**
		* 根据条件查询微信用户绑定门店表列表
		* @param HashMap 参数map
		* @return List<Bound> 实体List
		*/
	@Override
	public List<Bound> queryListByCarrierName(Bound bound, String name, String sort) {
		HashMap<String, Object> params = new HashMap<String, Object>();
		params.put("bound", bound);
		params.put("name", name);
		params.put("sort", sort);
		return this.boundDAO.selectListByCondition(params);
	}

	@Override
	public Bound queryByOpenIdAndCarrierSiteId(String openId, Long carrierSiteId) {
		
		return this.boundDAO.selectByOpenIdAndCarrierSiteId(openId,carrierSiteId);
	}



}